package net.hn.hnms.biz.project.vo;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import net.hn.hnms.biz.project.domain.ProjectFile;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author 刘昊
 * @version 1.0.0
 * @ClassName ComprehensiveQueryVo.java
 * @Description 综合查询
 * @date 2024-03-19 9:29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel("综合查询")
public class ComprehensiveQueryVo extends BaseVO implements Serializable {

    @ApiModelProperty(value = "项目id")
    @TableId(type = IdType.ASSIGN_UUID)
    private String projectId;

    @ApiModelProperty(value = "项目编号")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String projectCode;

    @ApiModelProperty(value = "项目名称")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String projectName;

    @ApiModelProperty(value = "项目日期")
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private Date projectDate;

    @ApiModelProperty(value = "计划开始日期")
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private Date startDate;

    @ApiModelProperty(value = "计划结束日期")
    @JsonFormat(
            pattern = "yyyy-MM-dd"
    )
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private Date endDate;

    @ApiModelProperty(value = "项目预算编号")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String budgetCode;

    @ApiModelProperty(value = "项目预算主题(标题)")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String budgetTitle;

    @ApiModelProperty(value = "合同编号")
    private String contractCode;

    @ApiModelProperty(value = "合同标题")
    private String contractTitle;

    @ApiModelProperty(value = "项目总预算金额")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "项目到位资金")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private BigDecimal accountAmount;

    @ApiModelProperty(value = "施工单位")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String constructionUnit;

    @ApiModelProperty(value = "备注")
    @TableField(updateStrategy= FieldStrategy.IGNORED)
    private String projectRemark;

    @ApiModelProperty(value = "文件集合")
    private List<ProjectFile> projectFiles;

    @ApiModelProperty(value = "煤矿编码")
    private String mineCode;

    @ApiModelProperty(value = "公司编码")
    private String companyCode;

}
